#ifndef GPS_H
#define GPS_H

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <math.h>
#include <ctype.h>
#include <stdbool.h>
#include <stdint.h>

extern char gngga[45];
extern char weidu[15];
extern char jdu[15];
extern char haiba[5];
extern char staflag;
extern bool openGpsFlag;
extern bool ledFlag;
// extern bool ledFlagRad;

// GPS数据结构
typedef struct {
    double latitude;       // 纬度
    double longitude;      // 经度
    double altitude;       // 海拔高度
    int satellites;        // 使用的卫星数量
    char status;           // 定位状态: A=有效定位, V=无效定位
    char mode;             // 定位模式
    float hdop;            // 水平精度因子
    float speed;           // 地面速度(节)
    float course;          // 地面航向(度)
    char time[12];         // UTC时间 HHMMSS.SSS
    char date[12];         // UTC日期 DDMMYY
} GPS_Data;

// // NMEA解析相关函数
// uint8_t nmea_checksum(const char *s);
// bool nmea_validate(const char *sentence);
// void parse_gga(const char *sentence);
// void parse_rmc(const char *sentence);
// void parse_vtg(const char *sentence);
// void parse_gsa(const char *sentence);
// void process_nmea_sentence(const char *sentence);

// // 主任务函数
void GPS_gather_entry(void);
// void app_gps_read_int_handler(const void *buffer, uint16_t length, bool error);

#endif 